package com.ruoyi.algorithm.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.ruoyi.algorithm.annotation.TableStructAnno;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 *
 * @TableName algorithm
 */
@TableName(value ="algorithm")
@Data
@ApiModel("算法")
@TableStructAnno("algorithm")
public class Algorithm implements Serializable {
    /**
     * 主键id
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    @ApiModelProperty("主键ID")
    private Long id;

    /**
     * 算子表id
     */
    @TableField(value = "operator_id")
    @ApiModelProperty("算子表id")
    @TableStructAnno("算子表id")
    private Long operatorId;

    /**
     * 算法名称
     */
    @ApiModelProperty("算法名称")
    @TableField(value = "algorithm_name", condition = SqlCondition.LIKE)
    @TableStructAnno("算法名称")
    private String algorithmName;

    /**
     * 算法类型表id
     */
    @ApiModelProperty("算法类型表id")
    @TableField(value = "algorithm_type_id")
    @TableStructAnno("算法类型表id")
    private Long algorithmTypeId;

    /**
     * 算子初始化地址模板
     */
    @ApiModelProperty("算子初始化地址模板")
    @TableField(value = "operator_init_addr_temp", condition = SqlCondition.LIKE)
    @TableStructAnno("算子初始化地址模板")
    private String operatorInitAddrTemp;

    /**
     * 算子初始化参数KV
     */
    @ApiModelProperty("子初始化参数KV")
    @TableField(value = "operator_init_param", condition = SqlCondition.LIKE)
    @TableStructAnno("算子初始化参数KV")
    private String operatorInitParam;

    /**
     * 算法输出数据结构类型
     */
    @ApiModelProperty("算法输出数据结构类型")
    @TableField(value = "output_data_structure_id", condition = SqlCondition.LIKE)
    @TableStructAnno("算法输出数据结构类型")
    private Long outputDataStructureId;

    /**
     * 半结构化解析引擎ID
     */
    @ApiModelProperty("半结构化解析引擎ID")
    @TableField(value = "half_structured_parsing_engine_id")
    @TableStructAnno("半结构化解析引擎ID")
    private Long halfStructuredParsingEngineId;

    /**
     * 算法检测结果
     */
    @ApiModelProperty("算法检测结果")
    @TableField(value = "test_result", condition = SqlCondition.LIKE)
    @TableStructAnno("算法检测结果")
    private String testResult;

    /**
     * 半结构化数据存储方式
     */
    @ApiModelProperty("半结构化数据存储方式")
    @TableField(value = "half_structured_storage_mode_id")
    @TableStructAnno("半结构化数据存储方式")
    private Long halfStructuredStorageModeId;

    /**
     * 半结构化存储接口模版
     */
    @ApiModelProperty("半结构化存储接口模版")
    @TableField(value = "storage_interface_temp", condition = SqlCondition.LIKE)
    @TableStructAnno("半结构化存储接口模版")
    private String storageInterfaceTemp;

    /**
     * 半结构化存储参数KV
     */
    @ApiModelProperty("半结构化存储参数KV")
    @TableField(value = "storage_param", condition = SqlCondition.LIKE)
    @TableStructAnno("半结构化存储参数KV")
    private String storageParam;

    /**
     * 半结构化数据格式类型ID
     */
    @ApiModelProperty("半结构化数据格式类型ID")
    @TableField(value = "data_format_type_id")
    @TableStructAnno("半结构化数据格式类型ID")
    private Long dataFormatTypeId;

    /**
     * 半结构化数据模版
     */
    @ApiModelProperty("半结构化数据模版")
    @TableField(value = "data_template", condition = SqlCondition.LIKE)
    @TableStructAnno("半结构化数据模版")
    private String dataTemplate;

    /**
     * 半结构化数据样本
     */
    @ApiModelProperty("半结构化数据样本")
    @TableField(value = "data_sample", condition = SqlCondition.LIKE)
    @TableStructAnno("半结构化数据样本")
    private String dataSample;

    /**
     * 在线标志（0:下线；1：上线）
     */
    @ApiModelProperty("在线标志（0:下线；1：上线）")
    @TableField(value = "is_online")
    @TableStructAnno("在线标志（0:下线；1：上线）")
    private String isOnline;

    /**
     * 算子初始化地址
     */
    @ApiModelProperty("算子初始化地址")
    @TableField(value = "operator_init_addr", condition = SqlCondition.LIKE)
    @TableStructAnno("算子初始化地址")
    private String operatorInitAddr;

    /**
     * 半结构化存储接口参数
     */
    @ApiModelProperty("半结构化存储接口参数")
    @TableField(value = "storage_interface_param", condition = SqlCondition.LIKE)
    @TableStructAnno("半结构化存储接口参数")
    private String storageInterfaceParam;

    /**
     * 视频分析配置id
     */
    @ApiModelProperty("视频分析配置id")
    @TableField(value = "video_analyse_config_id")
    @TableStructAnno("视频分析配置id")
    private Long videoAnalyseConfigId;

    /**
     * 图片分析配置id
     */
    @ApiModelProperty("图片分析配置id")
    @TableField(value = "picture_analyse_config_id")
    @TableStructAnno("图片分析配置id")
    private Long pictureAnalyseConfigId;

    /**
     * 特征分析配置id
     */
    @ApiModelProperty("特征分析配置id")
    @TableField(value = "feature_config_id")
    @TableStructAnno("特征分析配置id")
    private Long featureConfigId;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:dd:ss") // 前台传数据到后台
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss",timezone="GMT+8") // 后台传数据到前台
    @TableField(value = "create_time")
    @TableStructAnno("创建时间")
    private Date createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:dd:ss") // 前台传数据到后台
    @JsonFormat(pattern = "yyyy-MM-dd HH:dd:ss",timezone="GMT+8") // 后台传数据到前台
    @TableField(value = "update_time")
    @TableStructAnno("更新时间")
    private Date updateTime;

    /**
     * 创建人
     */
    @ApiModelProperty("创建人")
    @TableField(value = "create_user")
    @TableStructAnno("创建人")
    private Long createUser;

    /**
     * 更新人
     */
    @ApiModelProperty("更新人")
    @TableField(value = "update_user")
    @TableStructAnno("更新人")
    private Long updateUser;

    /**
     * 逻辑删除标志(0：未删除，1：已删除)
     */
    @ApiModelProperty("逻辑删除标志(0：未删除，1：已删除)")
    @TableField(value = "del_flag")
    @TableStructAnno("逻辑删除标志(0：未删除，1：已删除)")
    private String delFlag;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
